Modelo de Cascada
El modelo de cascada es un flujo secuencial lineal. En el que se considera que el progreso fluye constantemente hacia abajo (como una cascada) a través de las fases de implementación del software. Esto significa que, idealmente, cualquier fase del proceso de desarrollo comienza solo si se completa la fase anterior (en la práctica, dichas etapas se traslapan y se nutren mutuamente de información).
El enfoque en cascada no define el proceso para volver a la fase anterior para manejar los cambios en los requisitos. El enfoque en cascada es el enfoque más antiguo y más conocido que se utilizó para el desarrollo de software.
Para proyectos que no se enfocan en cambiar los requisitos, por ejemplo, proyectos iniciados a partir de una solicitud de propuestas (RFP), el cliente tiene requisitos documentados muy claros.
Ventajas:
Desventajas:
Es una extensión del modelo de cascada. En lugar de moverse hacia abajo de forma lineal, los pasos del proceso se doblan hacia arriba después de la fase de implementación y codificación, para formar la típica forma de V. La principal diferencia entre el modelo en forma de V y el modelo en cascada es la planificación temprana de la prueba en el modelo en forma de V.
Ventajas:
Desventajas:
Se refiere a la actividad de crear prototipos de aplicaciones de software, por ejemplo, versiones incompletas del programa de software que se está desarrollando. Es una actividad que puede ocurrir en el desarrollo de software y sirve para visualizar algunos de los componentes del software para limitar la cantidad de malentendidos de los requisitos del cliente por parte del equipo de desarrollo. Esto también reducirá las iteraciones que pueden ocurrir en el enfoque en cascada y que son difíciles de implementar debido a la inflexibilidad del enfoque en cascada. Entonces, cuando se desarrolla el prototipo final, el requisito se considera congelado.
Tiene algunos tipos, tales como:
Creación de prototipos desechables: prototipos que finalmente se descartan en lugar de convertirse en parte del software finalmente entregado.
Creación de prototipos evolutivos: prototipos que evolucionan hacia el sistema final a través de una incorporación iterativa de los comentarios de los usuarios.
Creación de prototipos incrementales: el producto final se construye como prototipos separados. Al final, los prototipos separados se fusionan en un diseño general.
Prototipado extremo: utilizado en aplicaciones web principalmente. Básicamente, divide el desarrollo web en tres fases, cada una basada en la anterior. La primera fase es un prototipo estático que consiste principalmente en páginas HTML. En la segunda fase, las pantallas se programan y funcionan completamente utilizando una capa de servicios simulados. En la tercera fase, se implementan los servicios.
Este proceso se puede utilizar con cualquier modelo de desarrollo de software. Este proceso se debe elegir cuando se está desarrollando un sistema que tenga interacciones con el usuario. Osea, si el sistema no tiene interacciones con el usuario, como un sistema que hace cálculos, no tendrá prototipos.
Ventajas
Desventajas
Combina elementos de diseño y creación de prototipos en etapas, en un esfuerzo por combinar las ventajas de los conceptos de arriba hacia abajo y de abajo hacia arriba.
Este modelo de desarrollo combina las características del modelo de creación de prototipos y el modelo de cascada.
El modelo en espiral es el preferido para proyectos grandes, costosos y complicados. Este modelo utiliza muchas de las mismas fases que el modelo en cascada, esencialmente en el mismo orden, separadas por la planificación, la evaluación de riesgos y la construcción de prototipos y simulaciones.
Se utiliza en grandes aplicaciones y sistemas que incorporan pequeñas fases o segmentos.
Ventajas
Desventajas
Está desarrollado para superar las debilidades del modelo de cascada. Comienza con la planificación inicial y termina con la implementación con las interacciones cíclicas intermedias.
La idea básica detrás de este método es desarrollar un sistema a través de ciclos repetidos (iterativos) y en porciones más pequeñas a la vez (incrementales), lo que permite a los desarrolladores de software aprovechar lo aprendido durante el desarrollo de partes o versiones anteriores del sistema.
Puede consistir en mini-cascadas o mini-modelos en forma de V.
Se utiliza en aplicaciones de envoltura retráctil y grandes sistemas que incorporan pequeñas fases o segmentos. Además, se puede utilizar en un sistema que tenga componentes separados, por ejemplo, un sistema ERP. Podemos comenzar con el módulo de presupuesto como una primera iteración y luego podemos comenzar con el módulo de inventario y así sucesivamente.
Ventajas
Desventajas
Se basa en el desarrollo iterativo e incremental, donde los requisitos y las soluciones evolucionan a través de la colaboración entre equipos multifuncionales.
Se puede usar con cualquier tipo de proyecto, pero necesita más participación del cliente y ser interactivo. Además, podemos usarlo cuando el cliente necesita tener listos algunos requisitos funcionales en menos de tres semanas y los requisitos no son lo suficientemente claros. Esto permitirá piezas de software más valiosas y viables desde el principio, lo que también aumenta la satisfacción del cliente.
Ventajas
Desventajas
Está basado en la reutilización de componentes de software o COTS (Commercial-off-the-shelf), los cuales son integrados en el sistema a construir.
Los componentes en general tienen que ser configurados para adaptar su comportamiento y funcionalidad a los requerimientos del cliente.
La reutilización de componentes es hoy en día un enfoque estándar para la construcción de muchos tipos de sistemas de negocio.
Ventajas
Desventajas